package unq.uis.robots.applicationsModels;

import java.io.Serializable;

import org.uqbar.commons.utils.Observable;

import unq.uis.robots.model.Jugador;
import unq.uis.robots.model.Robot;
import unq.uis.robots.model.Sistema;

@Observable
public class VenderRobotApplicationModel implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public static final String SISTEMA = "sistema";
	public static final String OFERTADELSISTEMA = "ofertaDelSistema";
	public static final String ROBOTAVENDER = "robotAVender";
	
	private Sistema sistema = Sistema.getInstance();
	private JugadorVista vistaAnterior;
	private Robot robotAVender;
	private Jugador jugador;
	
	public VenderRobotApplicationModel(JugadorVista vistaAnterior, Robot robotAVender){
		this.vistaAnterior = vistaAnterior;
		this.robotAVender = robotAVender;
		this.jugador = this.vistaAnterior.getJugador();
	}
	
	public void vender(){
		this.sistema.comprarRobot(this.getOfertaDelSistema(), this.robotAVender, this.jugador);
		//Linea comentada para que no tire error en la aplicación web
		//this.vistaAnterior.actualizarDatos();
	}
	
	public void rechazarOferta(){
		this.sistema.jugadorRechazaOferta(this.getRobotAVender());
	}
	
	public int getOfertaDelSistema(){
		return this.sistema.ofertarPorUnRobot(this.robotAVender.getPrecioBase());
	}

	public Sistema getSistema() {
		return sistema;
	}

	public void setSistema(Sistema sistema) {
		this.sistema = sistema;
	}

	public JugadorVista getVistaAnterior() {
		return vistaAnterior;
	}

	public void setVistaAnterior(JugadorVista vistaAnterior) {
		this.vistaAnterior = vistaAnterior;
	}

	public Robot getRobotAVender() {
		return robotAVender;
	}

	public void setRobotAVender(Robot robotAVender) {
		this.robotAVender = robotAVender;
	}

	public Jugador getJugador() {
		return jugador;
	}

	public void setJugador(Jugador jugador) {
		this.jugador = jugador;
	}

}
